The Transmission Control Protocol (TCP) is a virtual circuit protocol that is one of the core protocols of the Internet protocol suite, often simply referred to as TCP/IP. Using TCP, applications on networked hosts can create connections to one another, over which they can exchange streams of data. The protocol guarantees reliable and in-order delivery of data from sender to receiver. TCP also distinguishes data for multiple connections by concurrent applications (e.g. Web server and e-mail server) running on the same host.
TCP supports many of the Internet's most popular application protocols and resulting applications, including the World Wide Web, e-mail and Secure Shell.
In the Internet protocol suite, TCP is the intermediate layer between the Internet Protocol (IP) below it, and an application above it. Applications often need reliable pipe-like connections to each other, whereas the Internet Protocol does not provide such streams, but rather only best effort delivery (i.e. unreliable packets). TCP does the task of the transport layer in the simplified OSI model of computer networks. The other main transport-level Internet protocol is UDP.
Hence, TCP/IP is a protocol used for internet traffic for devices comprising a computer. This protocol allows for transmitting and receiving a data stream comprising a number of data segments in the form of packages. The data stream is advantageously broken up so that the segments may be sent to and from a user equipment (hereinafter called UE) with as high data transmission rate (hereinafter called the rate) as possible, i.e. with as many transmitted segments per time unit as possible. The UE intended to receive the data segments comprises a receiver for receiving the segments and for assembling the segments into a data stream corresponding to the transmitted data stream. When the UE has received a segment an acknowledgement signal, ACK, is sent back to the UE that transmitted the segment. If a segment is not acknowledged the transmitter retransmits the segment. The TCP/IP protocol includes rate control in order to avoid congestion in the network. Two different rate control phases (or control modes) exist and they are “slow start” and “congestion avoidance”. A transmission always starts in slow start mode with a low rate. Then for each roundtrip time, RTT, the rate is doubled. The TCP/IP transmitter also estimates the RTT based on the time when a message is transmitted until corresponding acknowledge message is received from the TCP/IP receiver.
Two different reasons result in that the TCP/IP transmitter reduces its rate:    1) The transmitter does not receive an ACK on a transmitted segment within a roundtrip time timeout, RTO. The RTO is determined by a function based on the estimated RTT. When this RTO has expired, the transmitter restarts with the slow start mode.    2) A duplicated ACK is received a number of times, often three. A duplicate ACK is an ACK that point out the same segment number as the previous ACK pointed out. This means that the transmitter knows that the receiver did not receive the segment appointed to, in the ACK. Furthermore, the transmitter also knows that the receiver has received some later transmitted segments. Hence, the transmitter knows that the connection is still in operation but that a segment is lost. In such a case the transmitter performs a fast retransmission and reduces its transmission rate to half the current transmission rate. This handling is included in order to avoid that the transmitter restarts with the time consuming slow start mode, which is the consequence if an ACK is not received by the transmitter within the RTO i.e. if the missing segment is not retransmitted and acknowledged within the RTO.
In mobile networks, (e.g. IEEE 802.16 and 3rd Generation Partnership Project (3GPP)) a scheduler exists in order to distribute the transmission capacity fairly between different data transmission flows to different UEs in a cell over an air interface. At the same time the scheduler tries to utilize the transmission capacity in such a way so that the total transmission rate in the network, i.e. e.g. in the cell, can be maximized. Since the transmission capacity is limited in the air interface, the scheduler wants to control the rate of each transmission flow in a fair manner.
Several methods exist in order to regulate the transmission flow rate. One method is to incorporate a control-signaling interface between the mobile network and the TCP/IP transmitter side, where the network explicitly informs the transmitter what rate is acceptable for the scheduler.
Another method is that the mobile network provokes the TCP/IP protocol to reduce its rate, when needed, by discarding one segment but transmitting the following segments further to the receiver in the UE. This will result in a lost ACK and that the TCP/IP transmitter identifies that a segment is lost and that the transmitter will go into a fast retransmission mode according to item 1 above, i.e. to retransmit the lost segment and to reduce the TCP/IP rate to half the current transmission rate. This method strives to force the TCP/IP to a fast retransmission occasion instead of an RTO occasion that leads to the time-consuming slow start mode. Hence, the scheduler comprised in the mobile network can control the TCP/IP rate so that the scheduling rate control and the TCP/IP rate control interact in a good manner. This idea is adopted in a function often called Active Queue Management, AQM.
Furthermore, to establish a fast TCP/IP rate control, in order to get a high average transmission rate, it is known to minimize the round trip time. In order to minimize the RTT it is desired to minimize data latency time in the mobile network since the data latency is one parameter affecting the RTT. However, the TCP/IP protocol adjusts its rate for each received ACK. Hence, the faster an ACK is received, the faster the TCP/IP rate can increase, and the shorter RTT and latency time is necessary. This is a problem since channel performance between a base station and the UE always varies over time, especially when the UE is moving. When several UEs are connected to the cell, the channel performance is unique for each UE connection. Hence good channel performance will arise at different times for the different connections.
If then, according to the above, the permitted latency is minimized in the network in order to get a fast TCP/IP rate control the scheduler has to transmit data to an UE irrespective of whether if the momentary channel performance is good or bad. This means that the data may be transmitted on a poor channel requiring a lot of transmission capacity e.g. transmission power, and maybe a lot of retransmissions. This will have a negative impact on the scheduling gain for the network, i.e. for the total transmission rate in the network, i.e. e.g. in the cell. The problem also increases with the number of UEs in the cell since the more UEs being scheduled on bad channels; the more transmission capacity is required.
For the reasons above there exists a need for an improved scheduler that can manage the balance between TCP/IP rate using AQM and good channel performance for each UE in a cell controlled by the scheduler so that increased scheduling gain is achieved for the cell.